The concept of “cloud computing” has been established in recent years as a technology for delivering services to clients in need of IT-related functionality, e.g. involving various operations for processing and storing data. This development is driven by the need for efficient use of low-cost CPUs (Central Processing Units) for virtualized execution of services, allowing several applications to be executed in the same CPU which is much more efficient than execute each application in a separate or dedicated physical CPU.
The clients may be associated with any enterprises, companies, organizations, private persons, etc. In this description, a client can essentially be regarded as a communicating computer or the equivalent. Basically, the owner of a client does not have to invest in expensive hardware equipment, operative systems and software functionality together with administration, to provide for the needs in terms of IT functionality, but can instead hire resources, e.g. as hardware infrastructure and platforms, from a provider of cloud computing services, hereafter referred to as “cloud computing provider” for short.
Typically, cloud computing services can be consumed and utilized for a preset time period, and the hiring party, e.g. an enterprise or organization, can basically rely on any amount of resources at any time during the period of hiring as required, while the cloud computing service is fully managed by the cloud computing provider. Significant developments in virtualization and distributed computing, as well as improved access to high-speed Internet and generally greater cost-awareness, have enabled and strengthened the interest for cloud computing.
FIG. 1 is a simplified and schematic illustration of how cloud computing services may be utilized by a client 100. A cloud computing provider 102 has control of a set of resources in a cloud 104, which basically may include hardware equipment, basic software with capabilities for processing and storing tasks, and software functionality, e.g. processors, computers, servers, memories, data storages, operative systems, software product, etc. These resources can be configured to perform various cloud computing services for a great number of clients, and it is assumed that the capacity of the cloud is more or less unlimited, at least from the individual clients' viewpoint. The cloud computing services can then be used as means for executing various IT services when delivered to a client. In this description, the term “resource” is used to generally represent any such hardware equipment and software including operative systems, which can be used for enabling the cloud computing services and IT services.
In an action 1:1, the client 100 makes a request to the cloud computing provider 102 for a specific cloud computing service, possibly after browsing, in action 1:1a, a catalogue 106 of available predefined cloud computing service functions. Alternatively, the client may request to create a customized cloud computing service that is specifically adapted and configured to satisfy the needs of that particular client 100, which inevitably will require some amount of manual work for defining and configuring various functions for the cloud computing service. A next action 1:2 illustrates that the requested cloud computing service is basically provisioned for the client, which thus may involve a certain amount of manual work for defining functions for a new customized cloud computing service in the set of service functions 108.
The cloud computing provider 102 then allocates, i.e. reserves, and configures resources in the cloud 104 needed to realize the requested cloud computing service, in an action 1:3. The resource allocation in the cloud 104 is typically time-limited such that the cloud computing service and reserved resources can be utilized by the client 100, but notby others, for a preset period of time, after which the resources are released and can be used by other cloud computing services and clients. Other limitations may also be imposed for the cloud computing service, e.g. in terms of bandwidth, capacity and data amounts.
Once the proper resources have been allocated in the cloud 104, some kind of acknowledgement may be sent to the client, in an action 1:4, to confirm that the cloud computing service is ready for use. As said above, FIG. 1 is greatly simplified and the shown cloud computing provider node 102 may comprise various functions and entities for managing cloud computing services, client requests and resources, such as: a user interface, an entity for maintenance of a cloud computing service catalogue or the like, an entity for management of available resources in the cloud 104, an entity for resource allocation and configuration, an entity for monitoring and metering resource usage, and so forth.
In order to create an IT-service, a corresponding IT-application must be installed/configured/started in the cloud computing environment, comprising the cloud computing provider's resources, by the cloud computing provider. This work is typically supported by an IT-administrative department or the like at the enterprise/organization, or by an external IT-service provider if the enterprise/organization is outsourcing its entire IT-support to a third party.
As mentioned above, defining and configuring a new customized IT-service for a specific enterprise typically requires a significant amount of manual work, thus making such customized IT-services quite expensive to employ. Manual configuration work may also be required for establishing useful transport connections between the cloud computing provider and the clients, such as leased lines, transport VPNs (Virtual Private Networks) or IP-sec tunnels. As a result, it is only feasible to provide customized IT-services to relatively large enterprises able to afford it.
It is thus a problem that customized, and thereby virtually optimal, IT-services are affordable only to relatively large enterprises due to the amount of manual work required, and that more cost-limited “smaller” enterprises, not affording such customized services, sometimes referred to as SOHOs (Small office Home Office), must be content with support by standard IT-environment providing rudimentary predefined services like telephony, internet access, and storage. The latter enterprises may further be unable to provide the competence and knowledge required for supporting the process of customizing and providing the IT-services. The current cloud architectures are thus too inflexible to provide an affordable and virtual optimal IT-service for said “smaller” enterprises due to the amount of manual work required, particularly for cost-sensitive small and medium-sized enterprises.
Thus, the amount of IT-services that can support the smaller enterprises is quite limited in the solutions of today. The cloud architectures of today may be sufficient to provide customized services for a small number of large enterprises, but they are insufficient for meeting specific demands of a large number of small and medium-sized enterprises, users or groups of users.
Another problem relates to capacity in that the utilization of resources in a cloud can be rather inefficient since the resources in the cloud are continually being reserved to a hiring client, thus not being available for others, even though the allocated resources may be left unused for extensive lengths of time during the hiring period. Therefore, the cloud computing provider must host a much greater amount of resources than actually being required for use at the same time. Unreasonable capacity would be required in the cloud computing service to provide dedicated resources for a large number of IT-services at the same time.